package com.cs.beneficios.web.action;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.beneficios.common.entity.Consultas;
import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedList;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import com.cs.paoyer.administration.business.model.UserVO;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
//import org.apache.struts.action.ActionError;
//import org.apache.struts.action.ActionErrors;
import java.io.IOException;
import javax.servlet.ServletException;

public class RegresarAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	ConnectionFactory cf = new ConnectionFactory();
    Consultas objCons = new Consultas(cf);
    try{
       HttpSession session = request.getSession();
      //Proceso para la auditoria
       UserVO user = (UserVO) request.getSession().getAttribute("userInfo");
       String terminalAddress = request.getRemoteAddr();
       String strTerminal = ("WEB="+terminalAddress);
       Calendar c = Calendar.getInstance(); 
       SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");   
      //Fin del proceso

       String CodAtributo = request.getParameter("codatributo"); 
       String CodVfl  = request.getParameter("codigovfl");  
       String strArrAct[] = {user.getName(), dateFormat.format(c.getTime()),strTerminal};
       int ActValorSugerido = objCons.ActulizarValorSug(CodAtributo,CodVfl,strArrAct);
 
       int iCodAtriGenerico = objCons.ObtenerCodAtriEspe(CodAtributo);
       int ActValorSugeridoGene = objCons.ActulizarValorSugGene(iCodAtriGenerico,CodVfl); 
       
       
       String sub = (String)session.getAttribute("subprograma");
       
       List lNombre = new LinkedList();
       
       lNombre = (List)session.getAttribute("ListaNombre");
       if(lNombre != null)
       {
         int iTamanoValidar=lNombre.size();
         if (iTamanoValidar!=0)
         {
            Collection val = objCons.getAtriValidarLista2(lNombre,sub); 
            request.setAttribute("tamano",val.size()+"");
            request.setAttribute("dominios",val);
         }
       }else
       {
         Collection val = new LinkedList();
         request.setAttribute("tamano",val.size()+"");
         request.setAttribute("dominios",val);
       }

       cf.closeConnection(objCons.getConn());
    }catch(SQLException e)
    {
      e.printStackTrace();
    }finally
    {
      try{
        cf.closeConnection(objCons.getConn());
      }catch(SQLException e)
      {
        e.printStackTrace();
      }
    }
    return mapping.findForward("success");
  }
  
  
}